
/**
 * @ProjectName: 
 * @Copyright: 2014 lisheng  All Right Reserved.
 * @address: toughheart@163.com
 * @date: 2015年1月16日 下午9:12:16
 * @Description: 本内容未经本人允许禁止使用、转发.
 */
 
package com.ls.fw.search.lucene.server.base;

import java.util.List;

import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.TopDocs;

import com.ls.fw.search.lucene.bean.SearchCondition;
import com.ls.fw.search.lucene.mapper.DocMapper;
import com.ls.fw.search.lucene.mapper.TopDocMapper;


/**
 * 
 * @author lisheng
 * @date 2015年1月16日 下午9:12:16
 * @version V1.0 
 */
public interface BaseServer {

	/**
	 * 
	 * @author lisheng
	 * @date 2015年1月13日 下午9:14:21
	 * @version V1.0
	 * @param searcher
	 * @param searchCondition
	 * @param mapper
	 * @return
	 */
	<M> List<M> scan(IndexSearcher searcher, SearchCondition searchCondition,
			DocMapper<M> mapper);
	
	
	/**
	 * 扫描数据
	 * 
	 * @author lisheng
	 * @date 2015年1月13日 下午8:27:41
	 * @version V1.0
	 * @param searcher
	 * @param searchCondition
	 * @param mapper
	 * @return
	 */
	public long scan(IndexSearcher searcher, final SearchCondition searchCondition
			, TopDocMapper mapper);
	

	public TopDocs search(IndexSearcher searcher, final SearchCondition searchCondition);
	
	
	/**
	 * 统计总数
	 * 
	 * @author lisheng
	 * @date 2015年1月11日 下午1:56:19
	 * @version V1.0
	 * @param searcher
	 * @param searchCondition
	 * @return
	 */
	long count(IndexSearcher searcher, final SearchCondition searchCondition);
		
}
